// 测试线程的封装

#include <iostream>
#include "Thread.hpp"
#include <unistd.h>
#include <vector>

// 将我们封装的 ThreadModel 展开

using namespace ThreadModel;

int main()
{

    // 创建多线程

    std::vector<Thread> threads;
    for (int i = 0; i < 10; i++)
    {
        //  Lambda 表达式传对应的任务
        threads.emplace_back([]()
                             {
        while(true)
        {
            char name[128];
            pthread_getname_np(pthread_self(), name, sizeof(name));
            std::cout << "我是一个新线程: " << name << std::endl; // 我的线程的名字是什么呀？debug
            sleep(1);
        } });
    }
    for (auto &thread : threads)
    {
        thread.Start();
    }

    for (auto &thread : threads)
    {
        thread.Join();
    }

    // 定义一个线程对象
    // 这里用  Lambda 表达式传对应的任务
    // Thread thread([]()
    // {
    //....
    // });
    // thread.Detach();
    // // //启动线程
    // thread.Start();

    // //thread.Detach();
    // thread.Stop();
    // thread.Join();

    return 0;
}